Again thanks a lot for your help!
There is the final result:
function getPrefix(value)
{
var prefix="";
var retVal = value;
var i, j=0;
var min, max, mul;
// Table ordered by smallest submultiple to highest multiple
var sTable=
[
// Metric submultiples
"yocto","zepto","atto","femto","pico",
"nano","micro","mili","centi","deci",
// Metric multiples
"deca","hecto","kilo","mega","giga",
"tera","peta","exa","zetta","yotta"
];
for(i=-24; i<=24; i+=3)
{
min="1e"+(i.toString());
min=Number(min);
max="1e"+((i+3).toString());
max=Number(max);
if(i==0)
i+=1;
if(i>=0)
mul="1e-"+(Math.abs(i).toString());
else
mul="1e"+(Math.abs(i).toString());
mul=Number(mul);
if(value >= min && value < max)
{
prefix = sTable[j];
retVal = value * mul;
document.write("_____PICKED_____<br />");
document.write("[I: "+i+"]<br />X: "+min+" -> Y: "+max+" -> Z: "+mul+"<br />");
break;
}
else if(prefix == "" && i == 24)
prefix = "prototype prefix";
document.write("[I: "+i+"]<br />X: "+min+" -> Y: "+max+" -> Z: "+mul+"<br />");
if(i >= -3 && i < 0 || i > 0 && i < 3)
i -= 2;
j++;
}
return [retVal,prefix];
}
var gp=getPrefix(0.1);
document.write("Value: " + gp[0] + " " + gp[1] + "<br />");